package com.csun.cmny.provider.utils;

import java.util.Map;
import java.util.Random;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-04-14 09:44
 * @Description:
 */
public class WatchUtils {

    /**
     * @Description: String 转 Unicode
     * @param string 待转的字符串
     * @return String 转换后的Unicode字符
     * @author chisj chisj@foxmail.com
     * @date 2018年7月27日
     */
    public static String string2Unicode(String string) {
        StringBuffer unicode = new StringBuffer();
        for (int i = 0; i < string.length(); i++) {
            // 取出每一个字符
            char c = string.charAt(i);
            // 转换为unicode
            unicode.append("\\u" + Integer.toHexString(c));
        }
        return unicode.toString();
    }

    public static String unicode2String(String unicode) {
        StringBuffer string = new StringBuffer();
        String[] hex = unicode.split("\\\\u");
        for (int i = 1; i < hex.length; i++) {
            // 转换出每一个代码点
            int data = Integer.parseInt(hex[i], 16);
            // 追加成string
            string.append((char) data);
        }
        return string.toString();
    }

    /**
     *
     * @Description: TODO
     * @param @return
     * @return String
     * @throws
     * @author chisj chisj@foxmail.com
     * @date 2018年7月30日
     */
    public static String getTaskId() {
        String taskId = "";
        return taskId;
    }

    public static String getRandomString(int length){
        //定义一个字符串（A-Z，a-z，0-9）即62位；
        String str="zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
        //由Random生成随机数
        Random random=new Random();
        StringBuffer sb=new StringBuffer();
        //长度为几就循环几次
        for(int i=0; i<length; ++i){
            //产生0-61的数字
            int number=random.nextInt(62);
            //将产生的数字通过length次承载到sb中
            sb.append(str.charAt(number));
        }
        //将承载的字符转换成字符串
        return sb.toString();
    }
    /**
     * 第二种方法
     */
    public static String getRandomString2(int length){
        //产生随机数
        Random random=new Random();
        StringBuffer sb=new StringBuffer();
        //循环length次
        for(int i=0; i<length; i++){
            //产生0-2个随机数，既与a-z，A-Z，0-9三种可能
            int number=random.nextInt(3);
            long result=0;
            switch(number){
                //如果number产生的是数字0；
                case 0:
                    //产生A-Z的ASCII码
                    result=Math.round(Math.random()*25+65);
                    //将ASCII码转换成字符
                    sb.append(String.valueOf((char)result));
                    break;
                case 1:
                    //产生a-z的ASCII码
                    result=Math.round(Math.random()*25+97);
                    sb.append(String.valueOf((char)result));
                    break;
                case 2:
                    //产生0-9的数字
                    sb.append(String.valueOf
                            (new Random().nextInt(10)));
                    break;
            }
        }
        return sb.toString();
    }

    /**
     * @Description: TODO
     * @param @param startPointMap
     * @param @param string
     * @param @return
     * @return String
     * @throws
     * @author chisj chisj@foxmail.com
     * @date 2018年9月3日
     */
    public static String convertMapString(Map<String, Object> map, String key) {
        // TODO Auto-generated method stub

        return map.get(key).toString();
    }

}
